package com.frank.auth.domain.service;

import cn.dev33.satoken.stp.SaTokenInfo;
import com.frank.auth.domain.bo.AuthUserBo;

/**
 * @author Frank Zou
 * @version v0.0.1
 * @date 2024/2/9
 * @description
 */
public interface UserDomainService {

    /**
     * Register user
     * @param authUserBo user info
     * @return register result
     */
    Boolean register(AuthUserBo authUserBo);

    /**
     * Update user
     * @param authUserBo user info
     * @return update result
     */
    Boolean update(AuthUserBo authUserBo);

    /**
     * Delete user
     * @param userId user id
     * @return result
     */
    Boolean delete(Long userId);

    /**
     * User login
     * @param captcha captcha
     * @return login result
     */
    SaTokenInfo doLogin(String captcha);

    AuthUserBo getUserInfo(String captcha);
}
